package com.xuerhua.yxt.service;

import java.util.List;

import com.xuerhua.yxt.model.WorkApproval;
import com.xuerhua.yxt.page.Page;
import com.xuerhua.yxt.reqVo.WorkApprovalCountQueryVO;
import com.xuerhua.yxt.reqVo.WorkApprovalReqVO;
import com.xuerhua.yxt.view.CopyPaperApprovalView;
import com.xuerhua.yxt.view.OvertimeApplyView;
import com.xuerhua.yxt.view.PrintingPaperApprovalView;
import com.xuerhua.yxt.view.SchoolBusApprovalView;
import com.xuerhua.yxt.view.WorkApprovalView;
import com.xuerhua.yxt.view.teachingGoodsApprovalView;

public interface IWorkApprovalService {

	/**
	 * 提交工作审批
	 * @param reqVO
	 * @return
	 */
	int addWorkApproval(WorkApprovalReqVO reqVO);

	WorkApproval selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(WorkApproval record);
    
    /**
     * 审批
     * @param record
     * @return
     */
    int updateApproval(WorkApproval record);
    
    /**
     * 分页查询工作审批
     * @param page
     * @return
     */
    List<WorkApprovalView> selectViewListByPage(Page<WorkApprovalView> page);
    
    /**
     * 查询工作审批明细
     * @param wa
     * @return
     */
    WorkApprovalView selectViewDetail(WorkApproval wa);
    
    /**
     * 查询审批人的审批工单
     * @return
     */
    WorkApproval selectForApproval(WorkApprovalReqVO reqVO);
    /**
     * 是否是审批人
     * @param teacherId
     * @return
     */
    boolean isApprover(Integer teacherId);
    
    /**
     * 统计记录数
     * 
     * */
    public int countAllRecord(WorkApprovalCountQueryVO vo);

    /**
     * 复印油印查询
     * */
	List<CopyPaperApprovalView> selectWorkApprovalOfCopyPaperByPage(Page<CopyPaperApprovalView> page);

	/**
	 * 打印纸申请
	 * */
	List<PrintingPaperApprovalView> selectWorkApprovalOfPrintingPaperByPage(Page<PrintingPaperApprovalView> page);

	
	List<teachingGoodsApprovalView> selectWorkApprovalOfTeachingGoodsByPage(Page<teachingGoodsApprovalView> page);

	List<SchoolBusApprovalView> selectWorkApprovalOfSchoolbusByPage(Page<SchoolBusApprovalView> page);

	List<OvertimeApplyView> selectWorkApprovalOfOvertimeApplyByPage(Page<OvertimeApplyView> page);
	
}
